package cn.edu.lzzy.services;

import cn.edu.lzzy.entities.User;


import java.util.List;
import java.util.UUID;


public interface UserService {
    boolean isUserNameOccupied(String userName);//检查用户名占用情况，应用场景：注册用户、检查用户是否重复

    User register(User user);//应用场景：注册用户

    // ===========应用场景：用户登录==========
    String getSalt(String userName);//获取验证码，应用场景：用户登录

    User checkedUser(String userName, String password);//根据用户名/密码检查是否合法用户，应用场景：用户登录

    //=========系统管理业务===========
    List<User> getUsers();//获取系统用户列表

    List<User> getUsers(int page, int size);//获取系统用户分页列表

    Integer count();//获取所有用户数量

    List<User> getByApplyTeacher(boolean applying);//获取申请成为教师的数据

    List<User> search(String keyword);//根据关键字查询，多条件组合查询

    //======教师申请相关业务=======
    User approveTeacher(UUID id);//批准教师申请

    User declineTeacher(UUID id);//拒绝教师申请

    //=========其它业务===========
    User banUser(UUID id);//禁用用户

    User getById(UUID id);//查找用户
}
